package com.example.strategypattern.often;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @version 1.0.0
 * @className: Student
 * @description:
 * @author: zhangjunfa
 * @date: 2022/6/10 16:25
 */
@Data
@ToString
@NoArgsConstructor
public class Student {
    private String name;
    private String vehicle;

    public Student(String name) {
        this.name = name;
    }

    /**
     * Travel类的TravelTool方法非常庞大，它包含各种人的旅行实现代码，在代码中出现了较长的 if…else… 语句，假如日后小汪发达了
     * 也想体验一下做飞机去西藏旅游，那就要去修改TravelTool方法。违反了 “开闭原则”，系统的灵活性和可扩展性较差。
     * 算法的复用性差，如果在另一个系统中需要重用某些算法，只能通过对源代码进行复制粘贴来重用，无法单独重用其中的某个或某些算法。
     */
    public void travelTool() {
        if (name.equals("小张")) {
            setVehicle("绿皮火车");
        } else if (name.equals("老王")) {
            setVehicle("高铁");
        } else if (name.equals("尕朱")) {
            setVehicle("飞机");
        }
        System.out.println(name+"选择坐"+getVehicle()+"去西藏旅游");
    }
}
